package com.huawei.hms.support.api.sns.json;

import com.huawei.hms.support.api.entity.sns.UnreadMsg;
import com.huawei.hms.support.api.entity.sns.UserUnreadMsg;
import com.huawei.hms.support.api.entity.sns.internal.AddFriendReq;
import com.huawei.hms.support.api.entity.sns.internal.AddFriendResp;
import com.huawei.hms.support.api.entity.sns.internal.FriendSelectorIntentReq;
import com.huawei.hms.support.api.entity.sns.internal.GetContactSelectorIntentReq;
import com.huawei.hms.support.api.entity.sns.internal.GetFriendListResp;
import com.huawei.hms.support.api.entity.sns.internal.GetGroupListResp;
import com.huawei.hms.support.api.entity.sns.internal.GetGroupMemListResp;
import com.huawei.hms.support.api.entity.sns.internal.GetIMStatusResp;
import com.huawei.hms.support.api.entity.sns.internal.GroupListReq;
import com.huawei.hms.support.api.entity.sns.internal.GroupMemListReq;
import com.huawei.hms.support.api.entity.sns.internal.GroupSelectorIntentReq;
import com.huawei.hms.support.api.entity.sns.internal.SnsSendMsgIntentReq;
import com.huawei.hms.support.api.entity.sns.internal.UiIntentReq;
import com.huawei.hms.support.api.entity.sns.internal.UserDataReq;
import com.huawei.hms.support.api.entity.sns.internal.UserDataResp;
import com.huawei.hms.support.api.entity.sns.internal.UserSearchReq;
import com.huawei.hms.support.api.entity.sns.internal.UserSearchResp;
import com.huawei.hms.support.api.entity.sns.internal.UserUnreadMsgReq;
import com.huawei.hms.support.api.entity.sns.json.SnsOutIntent;
import o.fjo;

public interface SnsClient {

    public interface Callback {
        void notify(String str);
    }

    fjo<AddFriendResp> addFriend(AddFriendReq addFriendReq, Callback callback);

    fjo<SnsOutIntent> getContactSelectorIntent(GetContactSelectorIntentReq getContactSelectorIntentReq, Callback callback);

    fjo<GetFriendListResp> getFriendList(Callback callback);

    fjo<SnsOutIntent> getFriendSelectorIntent(FriendSelectorIntentReq friendSelectorIntentReq, Callback callback);

    fjo<SnsOutIntent> getGroupCreatorIntent(Callback callback);

    fjo<GetGroupListResp> getGroupList(GroupListReq groupListReq, Callback callback);

    fjo<GetGroupMemListResp> getGroupMemList(GroupMemListReq groupMemListReq, Callback callback);

    fjo<SnsOutIntent> getGroupSelectorIntent(GroupSelectorIntentReq groupSelectorIntentReq, Callback callback);

    fjo<GetIMStatusResp> getIMStatus(Callback callback);

    fjo<SnsOutIntent> getUiIntent(UiIntentReq uiIntentReq, Callback callback);

    fjo<UnreadMsg> getUnreadMsgCount(Callback callback);

    fjo<UserUnreadMsg> getUserCount(UserUnreadMsgReq userUnreadMsgReq, Callback callback);

    fjo<UserDataResp> getUserData(UserDataReq userDataReq, Callback callback);

    fjo<UserSearchResp> searchUser(UserSearchReq userSearchReq, Callback callback);

    fjo<SnsOutIntent> sendMsgIntent(SnsSendMsgIntentReq snsSendMsgIntentReq, Callback callback);
}
